libxl: Add AHCI support for upstream qemu
authorFabio Fantoni <fabio.fantoni@m2r.biz>
Wed, 8 Jul 2015 14:31:05 +0000 (16:31 +0200)
committerIan Campbell <ian.campbell@citrix.com>
Thu, 9 Jul 2015 11:15:16 +0000 (12:15 +0100)
commit05d428addd167d4d1d7fc3b6f4c85b4aaa5b71a7
treef1fe346426d89e930c5f2215b8d6fa65559b9304
parent5bedb5b7c6f54b1e5a715ec176283d296cea246b
libxl: Add AHCI support for upstream qemu

Usage:
hdtype=ide|ahci (default=ide)

If hdtype=ahci adds ich9 disk controller in ahci mode and uses it with
upstream qemu to emulate disks instead of ide.
It doesn't support cdroms which still using ide (cdroms will use
"-device ide-cd" as new qemu parameter)
Ahci requires new qemu parameter but for now other emulated disks cases
remains with old ones (I did it in other patch, not needed by this one)
I did it as libxl parameter disabled by default to avoid possible
problems:
- with save/restore/migration (restoring with ahci a domU that was with
ide instead)
- windows < 8 without pv drivers (a registry key change is needed for
AHCI<->IDE change FWIK to avoid possible blue screen)
- windows XP or older that many not support ahci by default.
Setting AHCI with libxl parameter and default to disabled seems the best
solution.
AHCI increase hvm domUs boot performance. On linux hvm domU I saw up to
only 20% of the previous total boot time, whereas boot time decrease a
lot on W7 domUs for most of boots I have done. Small difference in boot
time compared to ide mode on W8 and newer (probably other xen
improvements or fixes are needed not ahci related)

Signed-off-by: Fabio Fantoni <fabio.fantoni@m2r.biz>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
[ ijc -- adjust name of LIBXL_HAVE #define as discussed on list,
         fixup pod syntax in xl.cfg.pod.5 ]
docs/man/xl.cfg.pod.5
docs/misc/vbd-interface.txt
tools/libxl/libxl.h
tools/libxl/libxl_create.c
tools/libxl/libxl_dm.c
tools/libxl/libxl_types.idl
tools/libxl/xl_cmdimpl.c